package com.example.security.annotation;

import java.lang.annotation.*;

/**
 * 数据权限注解
 * 用于标注需要进行数据权限过滤的方法
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope {
    /**
     * 组织机构表的别名
     * 用于SQL拼接时指定表别名
     */
    String orgAlias() default "o";

    /**
     * 用户表的别名
     * 用于SQL拼接时指定表别名
     */
    String userAlias() default "u";

    /**
     * 权限字段
     * 指定权限控制的字段名
     */
    String permission() default "";

    /**
     * 是否包含本机构
     * true: 包含本机构数据
     * false: 不包含本机构数据
     */
    boolean includeSelf() default true;
}
